#!/bin/sh
#
# @name NXP Cup car: DF Robot GPX

#
# @type Rover
# @class Rover
#
# @board px4_fmu-v2 exclude
#
# @output MAIN2 Steering servo
# @output MAIN3 Speed of left wheels
# @output MAIN4 Speed of right wheels
#
# @maintainer Katrin Moritz
#
# @board px4_fmu-v2 exclude
# @board bitcraze_crazyflie exclude
#

. ${R}etc/init.d/rc.rover_defaults

param set-default BAT1_N_CELLS 2

param set-default EKF2_GBIAS_INIT 0.01
param set-default EKF2_ANGERR_INIT 0.01
param set-default EKF2_MAG_TYPE 1

param set-default FW_AIRSPD_MIN 0
param set-default FW_AIRSPD_TRIM 1
param set-default FW_AIRSPD_MAX 3

param set-default GND_THR_CRUISE 0.3
param set-default GND_THR_MAX 0.5

# Differential drive acts like ackermann steering with a maximum turn angle of 60 degrees, or pi/3 radians
param set-default GND_MAX_ANG 1.042
param set-default GND_WHEEL_BASE 0.17

# TODO: Set to -1.0, to allow reversing. This will require many changes in the codebase
# to support negative throttle.
param set-default GND_THR_MIN 0.0
param set-default GND_SPEED_P 0.25
param set-default GND_SPEED_I 3
param set-default GND_SPEED_D 0.001
param set-default GND_SPEED_IMAX 0.125
param set-default GND_SPEED_THR_SC 1

param set-default MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01

param set-default NAV_ACC_RAD 0.5

# Provide ESC a constant 1500 us pulse to idle
param set-default PWM_MAIN_DISARM 1500
param set-default PWM_MAIN_DIS3 1485
param set-default PWM_MAIN_DIS4 1485
param set-default PWM_MAIN_FAIL3 1485
param set-default PWM_MAIN_FAIL4 1485
param set-default PWM_MAIN_MAX 2000
param set-default PWM_MAIN_MIN 1000
param set-default PWM_MAIN_MIN3 970
param set-default PWM_MAIN_MIN4 970

# Enable Airspeed check circuit breaker because Rovers will have no airspeed sensor
param set-default CBRK_AIRSPD_CHK 162128

# Configure this as rover
set MAV_TYPE 10

# Set mixer
set MIXER rover_diff_and_servo

set PWM_MAIN_REV2 1
